package com.jianyun.jyzs.model.imdoel;

import com.jianyun.jyzs.bean.NewSignReslut;
import com.jianyun.jyzs.bean.SignNewReslut;
import com.jianyun.jyzs.bean.SignRange;
import com.jianyun.jyzs.bean.SignStateBean;
import com.jianyun.jyzs.bean.WillSignBean;

import java.util.HashMap;

/**
 * Created by yangshijun on 2018/6/11.
 */

public interface INewSignModel {


    /**
     * 判断是否在考勤范围内
     */
    interface OnisLocationRangeListener {
        void onRangeReslut(SignRange signRange);

        void onFailed(String msg);
    }

    /**
     * 获取用户将要打开的详细信息，包括现在是是打什么卡，将要在什么时间点之前打卡
     */
    interface OnGetNowSignDeatileListener {
        void onSuccess(WillSignBean willSignBean);

        void onFailed(String msg);
    }

    /**
     * 获取用户打卡的状态，是否迟到，早退
     */
    interface OnGetNowStateListener {
        void onSuccess(SignStateBean signStateBean);

        void onFailed(String msg);
    }

    /**
     * 打卡
     */
    interface OnNewSignListener {
        void onSuccess(SignNewReslut newSignReslut);

        void onFailed(String msg);
    }

    /**
     * 判断当前位置是否在考勤范围内
     *
     * @param lat
     * @param lng
     * @param enterpriseCode
     * @param onisLocationRangeListener
     */
    void judegLoactionRange(String enterpriseCode, String lat, String lng, OnisLocationRangeListener onisLocationRangeListener);

    /**
     * 获取要打卡的详细信息
     *
     * @param enterpriseCode
     * @param userId
     * @param onGetNowSignDeatileListener
     */
    void getNowSignDetail(String enterpriseCode, String userId, OnGetNowSignDeatileListener onGetNowSignDeatileListener);

    /**
     * 获取用户打卡状态
     *
     * @param enterpriseCode
     * @param userId
     * @param onGetNowStateListener
     */
    void getUserSignState(String enterpriseCode, String userId, String signType,OnGetNowStateListener onGetNowStateListener);

    /**
     * 开始打卡
     *
     * @param hashMap
     * @param onNewSignListener
     */
    void newSign(HashMap<String, String> hashMap, OnNewSignListener onNewSignListener);
}
